Today, an increasing number of network users are streaming multimedia data, such as videos, across the Internet. The multimedia data streamed can range from short user-generated YouTube® videos to TV shows and full-length movies. As a result, multimedia data transmission has now become a large portion of the Internet traffic. Moreover, multimedia data are increasingly being transmitted using wireless networks, such as cellular networks. While there are many protocols and formats associated with transmitting multimedia data over wireless networks, transmitting of multimedia data to communication devices is often based on one or more variations of progressive download protocols.
Under the progressive download protocols, videos can be transmitted from a multimedia server to a communication device using Hypertext Transfer Protocol (HTTP) or other transport layer protocols. The transport layer, however, may not be aware of the various internal metrics of the video being transmitted. For example, the transport layer is often unaware of the bitrate of the video or the frame rate of a video. As a result, regardless of the rate at which the communication device plays the downloaded video (i.e., the real-time playback rate), the communication device can download the video from the multimedia server at a transmitting rate corresponding to the available network bandwidth.
In some circumstances, the transmitting rate of the video can be higher than the real-time playback rate. For example, a media player of the communication device can play a downloaded video at the frame rate of the video. When the transmitting rate is higher than the real-time playback rate, such as the frame rate, the communication device can store the progressively downloaded video in a local media buffer so that the stored video can be played later. As a result, the video data stored in the local media buffer can grow over time. In some circumstances, however, a user of the communication device may cancel a video session after watching the video for only a short duration. That is, the user may stop watching the video well before the end of the video clip is reached, and thus the un-played video stored in the local media buffer can be wasted. Moreover, if a large portion of the progressively downloaded video is wasted, the network bandwidth may not be utilized efficiently.
One approach to reduce such wastage of the progressively downloaded video is to pace the transmission of video to the communication device based on the knowledge of the frame rate or the bitrate of the video. This approach can be used by video optimization gateways contained, for example, in cellular wireless networks. In particular, a video optimization gateway can transmit video to a communication device at a rate that is the same as or slightly above the real-time playback rate, therefore preventing the local media buffer from storing excessive multimedia data. Moreover, the video optimization gateway can also decode video frames and reduce the video frame rate, image quality, or both, before re-encoding and transmitting the video to the communication device. For example, the video optimization gateway can transmit an initial burst of video at the rate corresponding to the available network bandwidth and then transmit the rest of the video at a paced rate that is equal to or slightly above the real-time playback rate. Transmitting the initial burst of video is required because media players often require a certain amount of video data to be buffered before the media players can start to play the video.
While the above approach of pacing the transmission of a video at or near the real-time playback rate may address the issue of data wastage or inefficient usage of the network bandwidth, it can degrade user experience if, for example, the available bandwidth of the network frequently varies and/or falls below the real-time playback rate of the video over an extended period of time. This may often occur in wireless networks where the radio environment and other conditions can change rapidly and thus resulting in network fading periods. As another example, degradation of the user experience can also occur if multimedia servers are overloaded, resulting in slowing down of the delivery of multimedia data.
Moreover, when the available bandwidth of the network decreases and/or when the multimedia servers cannot deliver multimedia data at the desired rate, the media player of the communication device begins to consume the data in the local media buffer. If the network fading or server overloading extends to a long period of time, the local media buffer can be depleted. As a result, the playback of the video can be stalled or paused until additional multimedia data can be transmitted from the multimedia servers to the communication device.
The above approach of pacing the transmission of a video at or near the real-time playback rate in such situations can increase the likelihood of stalling. In particular, due to the pacing period, the video data that is stored in the local media buffer of the communication device may not be able to grow as fast as the network would otherwise allow. As a result, the local media buffer is susceptible to become depleted and the likelihood of stalling increases. On the other hand, however, if the transmission of the video is not paced, the communication device may download and store a large amount of the video data in the local media buffer, which can increase the chance of data wastage.